function u = sliding_mode_control(x, x_ref, params, W, Q)
    % 滑模控制器
    % x: 当前状态
    % x_ref: 目标状态
    % params: 系统参数
    % W, Q: 神经网络参数
    
    % 状态误差
    e1 = x_ref(1) - x(1);
    e1_dot = x_ref(2) - x(2);
    
    % 滑模面
    beta = params.beta;
    q = params.q;
    p = params.p;
    s = e1_dot + beta * sign(e1) * abs(e1)^(q/p);
    
    % 扩展状态估计
    x3_hat = adaptive_neural_network(x, W, Q);
    
    % 控制律
    u = 1 / params.b0 * (x_ref(3) - x3_hat + beta * e1^(q/p - 1) * e1_dot);
end
